<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /*
            Object.create 方法可以以指定对象为原型创建新的对象，同时可以为新的对象设置属性, 并对属性进行描述
                value : 指定值
                writable : 标识当前属性值是否是可修改的, 默认为 false
                configurable：标识当前属性是否可以被删除 默认为 false
                enumerable：标识当前属性是否能用for in 枚举 默认为 false
                get:   当获取当前属性时的回调函数
                set:   当设置当前属性时
        */

        // 使用快捷方式定义一个对象
        var ob = {
            name:"张三"
        };

        // 使用Object.create()方法，对ob对象进行二次加工,返回一个新对象
        var ob2 = Object.create(ob,{
            age:{
                value:20,
                writable:false,     // 限制当前属性是否可以修改，默认false
                configurable:false, // 是否可以删除 默认为false
                enumerable:false    // 是否可以被遍历 默认false
            }
        })

        console.log(ob2, ob2.name, ob2.age);
        ob2.age = 30; // 修改不了
        delete ob2.age; // 删除不了
        console.log(ob2);
        
        
        //console.log(ob); // {name: '张三', age: 20}
        // ob.age = 30;
        // console.log(ob); // {name: '张三', age: 30}
        // delete ob.age;
        // console.log(ob); // {name: '张三'}
    </script>
</body>
</html>